// pages/file-detail/index.js
Page({
  data: {
    pid: '',
    fileIndex: -1,
    file: null,
    fileUrl: ''
  },

  onLoad: function (options) {
    const pid = options.pid;
    const fileIndex = parseInt(options.fileIndex);

    this.setData({
      pid,
      fileIndex
    });

    // 加载文件信息
    this.loadFileInfo();
  },

  // 加载文件信息
  loadFileInfo: function () {
    try {
      const files = wx.getStorageSync(this.data.pid);
      if (files && Array.isArray(files) && files.length > this.data.fileIndex) {
        const file = files[this.data.fileIndex];

        // 检查文件是否存在
        wx.getFileSystemManager().access({
          path: file.path,
          success: () => {
            this.setData({
              file,
              // 使用原始URL，如果没有则使用文件名
              fileUrl: file.url || `文件：${file.name}`
            });
          },
          fail: () => {
            wx.showToast({
              title: '文件已失效',
              icon: 'none'
            });

            setTimeout(() => {
              wx.navigateBack();
            }, 1500);
          }
        });
      } else {
        wx.showToast({
          title: '文件不存在',
          icon: 'none'
        });

        setTimeout(() => {
          wx.navigateBack();
        }, 1500);
      }
    } catch (e) {
      console.error('读取缓存失败', e);
      wx.showToast({
        title: '获取文件信息失败',
        icon: 'none'
      });

      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }
  },

  // 复制链接
  copyLink: function () {
    wx.setClipboardData({
      data: this.data.fileUrl,
      success: () => {
        wx.showToast({
          title: '链接已复制',
          icon: 'success'
        });
      }
    });
  },

  // // 预览文件
  // previewFile: function() {
  //   if (!this.data.file) {
  //     wx.showToast({
  //       title: '文件不存在',
  //       icon: 'none'
  //     });
  //     return;
  //   }

  //   // 检查文件是否存在
  //   wx.getFileSystemManager().access({
  //     path: this.data.file.path,
  //     success: () => {
  //       // 根据文件类型选择不同的预览方式
  //       const imageExts = ['jpg', 'jpeg', 'png', 'gif', 'bmp'];

  //       if (imageExts.includes(this.data.file.type)) {
  //         // 图片预览
  //         wx.previewImage({
  //           urls: [this.data.file.path],
  //           current: this.data.file.path
  //         });
  //       } else {
  //         // 文档预览
  //         wx.openDocument({
  //           filePath: this.data.file.path,
  //           showMenu: true,
  //           success: () => {
  //             console.log('打开文档成功');
  //           },
  //           fail: (err) => {
  //             console.error('打开文档失败', err);
  //             wx.showToast({
  //               title: '无法预览此类型文件',
  //               icon: 'none'
  //             });
  //           }
  //         });
  //       }
  //     },
  //     fail: () => {
  //       wx.showToast({
  //         title: '文件已失效',
  //         icon: 'none'
  //       });

  //       setTimeout(() => {
  //         wx.navigateBack();
  //       }, 1500);
  //     }
  //   });
  // },
  // 预览文件
  previewFile: function () {
    if (!this.data.file) {
      wx.showToast({
        title: '文件不存在',
        icon: 'none'
      });
      return;
    }

    // 检查文件是否存在
    wx.getFileSystemManager().access({
      path: this.data.file.path,
      success: () => {
        // 根据文件类型选择不同的预览方式
        const imageExts = ['jpg', 'jpeg', 'png', 'gif', 'bmp'];

        if (imageExts.includes(this.data.file.type)) {
          // 图片预览
          // 对于本地文件，需要使用特殊的文件协议
          const fileUrl = this.data.file.url || this.data.file.path;

          if (this.data.file.url) {
            // 如果有远程URL，优先使用远程URL预览
            wx.previewImage({
              urls: [fileUrl],
              current: fileUrl
            });
          } else {
            // 如果是本地文件，需要先读取为临时文件或base64
            wx.getFileSystemManager().readFile({
              filePath: this.data.file.path,
              encoding: 'base64',
              success: (res) => {
                const base64 = 'data:image/' + this.data.file.type + ';base64,' + res.data;
                wx.previewImage({
                  urls: [base64],
                  current: base64
                });
              },
              fail: (err) => {
                console.error('读取图片失败', err);
                wx.showToast({
                  title: '无法预览图片',
                  icon: 'none'
                });
              }
            });
          }
        } else {
          // 文档预览
          wx.openDocument({
            filePath: this.data.file.path,
            showMenu: true,
            success: () => {
              console.log('打开文档成功');
            },
            fail: (err) => {
              console.error('打开文档失败', err);
              wx.showToast({
                title: '无法预览此类型文件，可前往浏览器打开',
                icon: 'none'
              });
            }
          });
        }
      },
      fail: () => {
        wx.showToast({
          title: '文件已失效',
          icon: 'none'
        });

        setTimeout(() => {
          wx.navigateBack();
        }, 1500);
      }
    });
  },
  // 分享
  // onShareAppMessage: function () {
  //   return {
  //     title: `分享文件：${this.data.file ? this.data.file.name : ''}`,
  //     path: `/pages/file-detail/index?pid=${this.data.pid}&fileIndex=${this.data.fileIndex}`,
  //     imageUrl: '/images/share-bg.png' // 自定义分享图片
  //   };
  // },
  // 分享
 // 分享
 share: function () {
  if (!this.data.file || !this.data.file.path) {
    wx.showToast({
      title: '文件不存在',
      icon: 'none'
    });
    return;
  }

  // 调用系统分享
  wx.shareFileMessage({
    filePath: this.data.file.path,
    success: () => {
      console.log('分享文件成功');
    },
    fail: (err) => {
      console.error('分享文件失败', err);
      // 如果分享失败，提供复制链接的选项
      if (this.data.file.url) {
        wx.showModal({
          title: '分享失败',
          content: '是否复制文件链接？',
          success: (res) => {
            if (res.confirm) {
              wx.setClipboardData({
                data: this.data.file.url,
                success: () => {
                  wx.showToast({
                    title: '链接已复制',
                    icon: 'success'
                  });
                }
              });
            }
          }
        });
      } else {
        wx.showToast({
          title: '分享失败',
          icon: 'none'
        });
      }
    }
  });
},
  onPullDownRefresh() {
    this.loadFileInfo()
    setTimeout(() => {
      wx.stopPullDownRefresh()
      wx.showToast({
        title: '刷新成功',
        icon: 'success',
        duration: 1000
      })
    }, 1000)
  }
})